package com.castle.fortress.admin.contract.info.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.math.BigDecimal;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import java.util.Date;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * 合同信息表 实体类
 *
 * @author
 * @since 2025-04-23
 */
@Data
@ApiModel(value = "contract对象", description = "合同信息表")
public class ContractDto implements Serializable {
	private static final long serialVersionUID = 1L;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "合同ID")
	@JsonProperty("contractId")
	private Long contractId;
	@ApiModelProperty(value = "文件名称")
	@JsonProperty("fileName")
	private String fileName;
	@ApiModelProperty(value = "文件URL")
	@JsonProperty("fileUrl")
	private String fileUrl;
	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "文件大小(字节)")
	@JsonProperty("fileSize")
	private Long fileSize;
	@ApiModelProperty(value = "合同类型")
	@JsonProperty("contractType")
	private String contractType;
	@ApiModelProperty(value = "合同金额")
	@JsonProperty("contractAmount")
	private BigDecimal contractAmount;
	@ApiModelProperty(value = "合同期限")
	@JsonProperty("contractTerm")
	private String contractTerm;
	@ApiModelProperty(value = "内容摘要")
	@JsonProperty("contentSummary")
	private String contentSummary;
	@ApiModelProperty(value = "甲方名称")
	@JsonProperty("partyA")
	private String partyA;
	@ApiModelProperty(value = "乙方名称")
	@JsonProperty("partyB")
	private String partyB;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "创建时间")
	@JsonProperty("createTime")
	private Date createTime;
	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty(value = "更新时间")
	@JsonProperty("updateTime")
	private Date updateTime;
	@ApiModelProperty(value = "创建人")
	@JsonProperty("createUser")
	private Long createUser;
	@ApiModelProperty(value = "更新人")
	@JsonProperty("updateUser")
	private Long updateUser;
	@ApiModelProperty(value = "删除标志(0:未删除 1:已删除)")
	@JsonProperty("isDeleted")
	private Integer isDeleted;

	/**
	 * 以下为合同审核相关字段
	 */
	@ApiModelProperty(value = "审查立场(partyA:甲方立场 partyB:乙方立场 neutral:中立立场)")
	@JsonProperty("stance")
	private String stance;

	@ApiModelProperty(value = "审查尺度(strong:强势 weak:弱势 equal:均势)")
	@JsonProperty("intensity")
	private String intensity;

	@ApiModelProperty(value = "规则清单ID，多个用逗号分隔")
	@JsonProperty("ruleListId")
	private String ruleListId;

	@ApiModelProperty(value = "审查方式(ai:AI智能生成 knowledge:从知识库选择)")
	@JsonProperty("reviewMethod")
	private String reviewMethod;

	@ApiModelProperty(value = "步骤")
	@JsonProperty("currentStep")
	private Integer currentStep;

	@ApiModelProperty(value = "审核状态")
	@JsonProperty("reviewStatus")
	private String reviewStatus;
}
